
//WKWebview 方式
// 这些和原生交互的实现方式最好放到原生文件中。方法名和传参可以有jS统一制定，避免平台不统一
// 注入本地js到当前页面的方法： 是执行js字符串
/**
 * 1. "tel"这个注入名称是有原生负责，最好不要分开
 * @param {*} mobile 
 */
// 打电话
function hexinTakeCall(mobile) {
    window.webkit.messageHandlers.tel.postMessage(mobile)
}

// 弹出登录
function hexinTakeLogin(param) {
    window.webkit.messageHandlers.login.postMessage(param)
}

// 获取session
function sessionBlock(param) {
    window.webkit.messageHandlers.session.postMessage(param)
}

// 修改导航标题
function hexinChangeNavTitle(param) {
    window.webkit.messageHandlers.nav.postMessage(param)
}

// 跳转个股详情页
// {"name": "平安银行", "code": "000001", "type": 2, "market": 2}
function hexinJumpToStock(param) {
    window.webkit.messageHandlers.stock.postMessage(param)
}





//总结
/**
 * wkwebview实现原理
 * 1. webkit引擎中有一个信息处理者数组属性(messageHandlers)
 * 2. iOS客户端根据webview中的usercontentController实例向messageHandlers中注入回调对象和此对象的key
 * 3. 回调对象用于iOS原生，此回调对象的key用于在JS的messageHandlers中动态保存key=value键值对，便于取出注入的是哪个回调对象。
 * 4. 取出回调对象后，JS执行postMessage方法，激活iOS原生的回调对象方法，且传入参数
 * 5. 注入本地js函数
    5.1 webView.evaluateJavaScript(“js字符串函数”, completionHandler: nil)
    5.2 批量注入
     let jsPath = Bundle.main.path(forResource: "nativeAction.js", ofType: nil)
     let jsUrl = URL(fileURLWithPath: jsPath!)
     let result = try? String(contentsOf: jsUrl)
     webView.evaluateJavaScript(result, completionHandler: nil)
 */
